package com.cyt.wx.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.wx.model.po.WxApplyMenu;
import com.cyt.wx.model.vo.WxApplyMenuVo;

import java.util.List;

/**
 * 微信管理-应用菜单Service层接口类
 *
 * @author shengQiang Yu
 * @date 2019-8-9 10:22:14
 */
public interface WxApplyMenuService extends BaseService<WxApplyMenu> {

    /**
     * 查询对象集合
     *
     * @param wxApplyMenuVo 对象
     * @return List 对象集合
     * @author shengQiang Yu
     * @date 2019-8-9 10:22:14
     */
    List<WxApplyMenu> listExample(WxApplyMenuVo wxApplyMenuVo);

    /**
     * 分页查询
     *
     * @param wxApplyMenuVo 接受参数对象
     * @param pageNum       分页数
     * @param pageSize      每页显示条数
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-8-9 10:22:14
     */
    ReturnResult page(WxApplyMenuVo wxApplyMenuVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param wxApplyMenuVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-8-9 10:22:14
     */
    ReturnResult addOrUpdate(WxApplyMenuVo wxApplyMenuVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxApplyMenuVo 参数接受对象
     * @param sysUser       当前用户
     * @return ReturnResult
     * @author shengQiang Yu
     * @date 2019-8-9 10:22:14
     */
    ReturnResult remove(WxApplyMenuVo wxApplyMenuVo, SysUser sysUser);

    /**
     * 获取菜单树
     *
     * @param wxApplyMenuVo 参数接受对象
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-8-15 17:15
     */
    ReturnResult dTreeList(WxApplyMenuVo wxApplyMenuVo);

    /**
     * 根据用户id获取菜单
     *
     * @param userId 用户id
     * @return List<WxApplyMenuVo>
     * @author shengQiang yu
     * @date 2019-08-27 15:37
     */
    List<WxApplyMenuVo> selectByUserId(String userId);

    /**
     * 根据条件查询
     *
     * @param wxApplyMenuVo 参数接受对象
     * @return List<WxApplyMenu>
     * @author shengQiang Yu
     * @date 2019-8-16 8:45:15
     */
    List<WxApplyMenu> selectByCondition(WxApplyMenuVo wxApplyMenuVo);
}